Skip to content

LIVY-979: Create a helm-based integration environment for debugging Livy on Kubernetes - #537

Open
nileshrathi345 wants to merge 1 commit into
apache:masterfrom
nileshrathi345:master_LIVY-979
Open

LIVY-979: Create a helm-based integration environment for debugging Livy on Kubernetes#537
nileshrathi345 wants to merge 1 commit into
apache:masterfrom
nileshrathi345:master_LIVY-979

Conversation

@nileshrathi345

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Adds a Helm chart under dev/helmchart/ for running Livy on a local Kubernetes cluster (e.g. Docker Desktop) for development and debugging, without cloud dependencies.

Included:

  • Helm chart for Livy (StatefulSet), Spark History Server, RBAC, Services, PVC/StorageClass, and optional ingress + TLS
  • Optional subcharts: ingress-nginx and cert-manager (gated via values)
  • values.yamlaligned with Livy 1.0.0-SNAPSHOT, Spark 3.5.6, Scala 2.12
  • Docs: README.md (install, smoke tests, optional Grafana/Loki), Docker.md (image build steps)
  • test/validate.sh — ASF license header checks, version consistency, helm lint / helm template
  • ASF license headers on chart source files; .rat-excludes updated only for generated Chart.lock

Template fixes found during local testing:

  • Ingress apiVersion rendering (trim directive)
  • cert-manager / ClusterIssuer / Certificate resources only when cert-manager is enabled
  • Spark History Server startup fix (HADOOP_USER_NAME=root for local Hadoop user resolution)

This PR is dev/ops tooling only — no changes to Livy server runtime code.

JIRA: LIVY-979

How was this patch tested?

Automated / local chart checks:

  • dev/helmchart/test/validate.sh — license headers, version keys, helm dependency build, helm lint, helm template

Manual testing (Docker Desktop Kubernetes, namespace livy-dev)

  • Built local images per Docker.md (livy-local/spark-py:v3.5.6, livy-local/livy:spark3.5.6)
  • Deployed with helm install / helm upgrade
  • Verified pods: livycluster-0, ingress-nginx, cert-manager, spark-history-0
  • REST via ingress/TLS: GET /livy/version → 200
  • Interactive session: created pyspark session, ran 1+1, sc.parallelize(...).count(), spark.range(5).collect() — all succeeded
  • Spark driver and executor pods reached Running on Kubernetes

Was this patch authored or co-authored using generative AI tooling?

Yes, co-authored by Cursor AI

Note: This PR builds on the original Helm chart work contributed by @askhatri

Add dev/helmchart/ to deploy Livy, Spark History Server, RBAC, ingress,
and optional cert-manager on a local Kubernetes cluster (e.g. Docker Desktop).
Includes ASF license headers, validation script, README/Docker.md, and review
fixes: no vendored chart tgz, consistent resource naming, unified RBAC/TLS
config, and derived image tags from sparkVersion.

Builds on the original contribution in apache#454.

Co-authored-by: Asif Khatri <123077165+askhatri@users.noreply.github.com>
Comment thread .rat-excludes
docs/**/*.html
docs/**/JB/**
venv/*
dev/helmchart/Chart.lock

@gyogal gyogal Aug 10, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

License headers have been added to all files except this one, but since this file is generated by helm dependency build, any license headers are overwritten. I checked other Apache projects and adding this file into .rat-excludes seems to be common practice, so this matches the setup found in other projects:

https://github.com/apache/airflow/blob/8c16340ca4903e3974b5342c0fe8ca1f0534395f/.rat-excludes#L118
https://github.com/apache/pulsar-helm-chart/blob/328846044c8e1df50399c28bc63887696b6d58dc/.rat-excludes#L20

@nileshrathi345

Copy link
Copy Markdown
Contributor Author

@gyogal, @roczei and @ArnavBalyan could please take a look when possible and review.
thanks..!!!

@roczei

roczei commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

could please take a look when possible and review. thanks..!!!

Hi @nileshrathi345,

I don't have experience with Helm charts, so I won't be able to review this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants